#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

// 函数返回当前时间的动态分配字符串
char* getNowtime(void) 
{
    time_t current_time;
    struct tm* now_time;
    char *cur_time = (char *)malloc(21 * sizeof(char)); // 分配足够的内存

    if (cur_time == NULL) 
    {
        perror("malloc failed");
        exit(EXIT_FAILURE);
    }

    time(&current_time);
    now_time = localtime(&current_time);

    // 使用strftime填充日期和时间字符串
    strftime(cur_time, 21, "%F %T", now_time); // 直接格式化为 "YYYY-MM-DD HH:MM:SS"

    return cur_time;
}

int main(void) {
    char *current_time_str = getNowtime();
    printf("\nCurrent time: %s\n\n", current_time_str);
    // 释放由getNowtime分配的内存
    free(current_time_str);

    return 0;
}
